var jsonFound = new Array();
var jsonInter = new Array();
var jsonPost = new Array();
var jsonComm = new Array();

function onloadCSSRS() {
	$(".corner").corner();
	$("#tab2Container").corner("5px");
	$("#tab2Containerb").corner("5px");
}

function loadRSTabCSS(index) {
	$(function() {
		$( "#rsTabsVacancy" ).tabs({ selected: parseInt(index) });
		$("#Tabs-1").corner("5px");
		$("#Tabs-2").corner("5px");
	});
	
	$("#rsTabsVacancy").click(function() {
		var selected = $("#rsTabsVacancy").tabs('option', 'selected');
		if(selected==1) {
			var vacancySelected = $("#vacancySelected").val();
			
			/** SELECCIONAR para test de vista de relacion vacante - candidato **/
			if(vacancySelected=="") {
				alert("Favor de seleccionar o generar una vacante");
				loadRSTabCSS(0);
			}
			/****/
		}
	});
	
	$("#findCandidates").css("width","170px");
	$("#findCandidates").css("font-size","10pt");
}

function loadCandidatesTab() {
	$(function() {
		$("#rsCandidatesTab").tabs();
		$("#tab_founded").corner("5px");
		$("#tab_stakeholders").corner("5px");
		$("#tab_postulates").corner("5px");
	});
	
	$("#rsCandidatesTab").click(function() {
		var selected = $("#rsCandidatesTab").tabs('option', 'selected');
		if(selected=="0") 		{ loadSubTableCSS("foundedGrid"); } 
		else if(selected=="1") 	{ loadSubTableCSS("stakeholdersGrid"); } 
		else if(selected=="2")	{ loadSubTableCSS("postulatesGrid"); }
	});
}

function loadCatalogCandidatesTab(index) {
	$(function() {
		$("#rsCatCanTab").tabs({ selected: parseInt(index) });
		$("#rsCatCanTab").corner("5px");
		$("#tabCatalogFrm").corner("5px");
		$("#tabCatalogRep").corner("5px");
	});
}

function rsSelecciona(component) {
	component.style.backgroundColor = "#d99694";
	component.style.color = "#FFF";
}

function rsDeselecciona(component) {
	if(component.id!=$("#rsMenuOption").val()) {
			component.style.backgroundColor = "#f2dcdb";
			component.style.color = "#454545";
	}
}

function selectRSOption(component) {

	var mSelected = document.getElementById("rsMenuOption").value;
	if(mSelected=="") {
		$("#rsMenuOption").val(component.id);
		component.style.backgroundColor = "#d99694";
		component.style.color = "#FFF";
	} else
		if(mSelected!=component.id) {
			rsSelecciona(component);
			$("#rsMenuOption").val(component.id);
			rsDeselecciona(document.getElementById(mSelected));
		}

	showRSOption(component);
}

function showRSOption(component) {
	if(component.id=="solicitud") {
		showRecruitmentOption();
	} else if(component.id=="vacante") {
		showTabsVacancyOption();
	} else if(component.id=="cCandidato") {
		showTabCatalogCandidateOption();
	}
}

/***** Opcion de reclutamiento abierta de acordeon *****/
function showRecruitmentOption() {
	screenManager("rsTabs", "solicitud");
	genericFilters("fDemand",1,0,0);
}

/***** Opcion de Vacantes abierta de acordeon *****/
function showTabsVacancyOption() {
	screenManager("rsVacancy", "vacante");
	
	loadRSTabCSS(0);
}

/***** Opcion de Catalogo de candidato abierta desde acordeaon *****/
function showTabCatalogCandidateOption() {
	screenManager("rsCandidatesCatalog", "cCandidato");
	$("#tabCatalogFrm").load("subpages/Candidato.jsp");
}

/*** Evento lazado desde reporte en opcion de reclutamiento ***/
function generaVacante(demand) {
	/** Se crea la vacante desde servlet **/
	/** Actualiza el num de vacantes **/
	var nVac = $("#nvc_"+demand).text();
	nVacActual = parseInt(nVac.split(":")[1])-1;
	
	if(parseInt(nVacActual)>0) {
		var parameters = {
				process		: "create",
				type 		: 1,
				vRestantes	: nVacActual,
				idSolicitud	: demand,
				fCierre		: $("#fns_"+demand).text().split(":")[1]
		};
		//alert(Object.toJSON(parameters));
		
		var jsonRequest = ajaxJSONtoPOST(Object.toJSON(parameters), serviceRecruitment);
		if(jsonRequest.Flag == "true") {
			//alert(jsonRequest.Folio);
			//alert(jsonRequest.vacancyID);
			$("#vacancySelected").val(jsonRequest.vacancyID);
			$("#nvc_"+demand).text(nVacActual);
			
			/** Muestra datos en forma **/
			$("#t2_demand").html("<b>Solicitud "+demand+"</b>");
			$("#t2_folio").html("<b>Folio "+jsonRequest.Folio+"</b>");
			$("#t2_cuenta").text($("#clt_"+demand).text());
			$("#t2_vendedor").text($("#slp_"+demand).text());
			$("#t2_vacancy").text($("#vac_"+demand).text());
			$("#t2_perfil").text($("#prf_"+demand).text());
			$("#t2_fAlta").text($("#cre_"+demand).text());
			$("#t2_duration").text($("#dtn_"+demand).text());
			$("#t2_tarifa").text($("#rte_"+demand).text());
			$("#t2_fFinal").text($("#fns_"+demand).text());
		/*
			$("#t2_status").val("En Proceso");
			$("#t2_Dias").val($("#dys_"+demand).text());
			$("#t2_contacto").val($("#ctc_"+demand).text());
			$("#t2_fPrioridad").val($("#pri_"+demand).text());
		*/
			
			document.getElementById("rsTabs").style.visibility = "hidden";
			document.getElementById("rsVacancy").style.visibility = "visible";
			$("#rsOptionActive").val("rsVacancy");
			
			$("#tab_founded").html("<input type='hidden'>");
			$("#tab_stakeholders").html("<input type='hidden'>");
			$("#tab_postulates").html("<input type='hidden'>");
			
			loadRSTabCSS(1);
		} else {
			alert("Error al crear la Vacante");
		}
	} else {
		alert("El numero de vacantes esta completo");
	}
	
}

/*
function cleanFrmCand() {
	$("#cName").val("");
	$("#caPaterno").val("");
	$("#caMaterno").val("");
	$("#cfuente").val("");
	$("#cMail").val("");
	$("#cSkill").val("");
	$("#cv").val("");
	$("#cTel").val("");
	$("#cMov").val("");
}
*/
function foundCandidates(type) {
	//alert($("#vacancySelected").val());
	var is3 = type==3;
	var caPat 		= is3 ? $("#dAPat").val() 		: 	$("#rsAPat").val();
	var caMat 		= is3 ? $("#dAMat").val()		:	$("#rsAMat").val();
	var caStatus 	= is3 ? $("#dStatus").val() 	:	$("#rsStatus").val();
	var caCreacion 	= is3 ? $("#dCreacion").val()	:	$("#rsfCreacion").val();
	var caFuente 	= is3 ? $("#dFuente").val()		:	$("#rsFuente").val();
	var caSkill 	= is3 ? $("#dSkill").val()		:	$("#rsSkill").val();
	var idVacancy   = is3 ? 0 						:  	($("#vacancySelected").val()==""?0:$("#vacancySelected").val());

	if(validateFields(caPat, 1) || validateFields(caMat, 1) ||
			validateFields(caStatus,1) || validateFields(caCreacion, 1) ||
			validateFields(caFuente, 1) || validateFields(caSkill, 1)) {
		
		var jsonReq = {
				process : "sCandidate",
				type : type,
				ap 	 : caPat,
				am   : caMat,
				st	 : caStatus,
				cc   : caCreacion,
				cf   : caFuente,
				cs   : caSkill,
				id	 : idVacancy,
				
				name 	: "",
				telefono: new Array(),
				mail	: new Array(),
				tech	: new Array(),
				cv		: ""
		};
		var jsonResp = ajaxJSONtoPOST(Object.toJSON(jsonReq), serviceRecruitment);
		if(jsonResp.Flag=="true") {
			if(type=="2"){
				$("#rsTblCand").html(jsonResp.HTMLCode);
				loadSubTableCSS("tblCandidatesReport");
			} else if(type=="3") {
				//alert("Carga de tabla");
				$("#rsTblCand2").html(jsonResp.HTMLCode);
				$("#btnDialogC").css("visibility", "visible");
				loadSubTableCSS("tblCandidatesDialog");
			}
		} else {
			alert(jsonResp.Error);
		}
	} else {
		alert("Es necesario al menos un filtro");
	}
}

function reportVacancyBy() {
	var hayResultados = false;
	var nSol = $("#f1idSol").val()		!="" ? $("#f1idSol").val()		: null;
	var fol =  $("#f1folio").val()		!="" ? $("#f1folio").val() 		: null;
	var crea = $("#f1fCreacion").val()	!="" ? $("#f1fCreacion").val()	: null;
	var sts =  $("#f1Status").val()		!="" ? $("#f1Status").val()		: null;
	
	if(nSol!=null||fol!=null||crea!=null||sts!=null) {
		var jsonReq = {
			process	:	"sVacancy",
			idSol	:	nSol,
			folio	:	fol,
			creacion:	crea,
			status	:	sts
		};
		
		jsonResp = ajaxJSONtoPOST(Object.toJSON(jsonReq), serviceRecruitment);
		if(jsonResp.Flag=="true") {
			$("#tab1TblReport").html(jsonResp.HTMLCode);
			hayResultados = jsonResp.There;
			loadCSSTable();
		} else {
			alert(jsonResp.Error);
		}
	} else {
		alert("Es necesario al menos un filtro");
	}
	
	return hayResultados;
}

function showTraicing(vacancyID) {
	$("#vacancySelected").val(vacancyID);
	
	var jsonReq = {
			process	:	"sVacancyTraicing",
			idVcy	:	vacancyID
	};
	
	var jsonResp = ajaxJSONtoPOST(Object.toJSON(jsonReq), serviceRecruitment);
	if(jsonResp.Flag=="true") {
		/** Muestra datos en forma **/
		$("#t2_demand").html("<b>Solicitud "+jsonResp.idDemand+"</b>");
		$("#t2_folio").html("<b>Folio "+jsonResp.Folio+"</b>");
		$("#t2_cuenta").text(jsonResp.Client);
		$("#t2_vendedor").text(jsonResp.Salesperson);
		$("#t2_vacancy").text(jsonResp.Vacancy);
		$("#t2_perfil").text(jsonResp.Profile);
		$("#t2_fAlta").text("Fecha de Ingreso: "+jsonResp.Creation);
		$("#t2_duration").text("Duraci\u00f3n: " +jsonResp.Duration + " meses");
		$("#t2_tarifa").text("Tarifa: $"+jsonResp.Rate);
		$("#t2_fFinal").text("Fecha fin de Asignaci\u00f3n: " +jsonResp.Finish);
		/*
		$("#t2_contacto").val(jsonResp.Contact);
		$("#t2_status").val(jsonResp.Status);
		$("#t2_fPrioridad").text(jsonResp.Priority);
		$("#t2_Dias").text(jsonResp.Days);
		*/
		loadRSTabCSS(1);
		
		/** Carga de Candidatos **/
		var htmlCode = jsonResp.HTMLCodeCandidates;
		if(htmlCode.length>1){
			$("#tab_founded").html(htmlCode.split("&")[0]);
			loadSubTableCSS("innerTblFounded");
			$("#tab_stakeholders").html(htmlCode.split("&")[1]);
			loadSubTableCSS("innerTblStakeholders");
			$("#tab_postulates").html(htmlCode.split("&")[2]);
			loadSubTableCSS("innerTblPostulates");
		} 
	} else {
		alert("Error al visualizar el seguimiento de la vacante seleccionada");
	}
}

function showDialogCand() {
	$( "#rsCandidates" ).dialog( "open" );
	//alert("vcy: "+$("#vacancySelected").val());
	//$("#vacancySelected").val(vacancy);
}

function acceptCandidates() {
	var objChxFInForm = document.getElementById("formCandidates").cmpe;
	var objChxIInForm = document.getElementById("formCandidates").cmpi;
	var objChxPInForm = document.getElementById("formCandidates").cmpp;
	
	var length = objChxFInForm.length;
	for(var idx=0; idx<length; idx++) {
		var objChxF = objChxFInForm[idx];
		var objChxI = objChxIInForm[idx];
		var objChxP = objChxPInForm[idx];
		if(objChxP.checked) {
			jsonPost.push({candidate : objChxP.id.split("_")[1]});
		} else if(objChxI.checked) {
			jsonInter.push({candidate : objChxI.id.split("_")[1]});
		} else if (objChxF.checked) {
			jsonFound.push({candidate : objChxF.id.split("_")[1]});
		}
	}
	jsonArrays = {
			process	: "add",
			vacancy : $("#vacancySelected").val(),
			found : jsonFound,
			inter : jsonInter,
			post :  jsonPost,
			cmnt : 	jsonComm
	};
	alert(Object.toJSON(jsonArrays));
	var jsonReq = ajaxJSONtoPOST(Object.toJSON(jsonArrays), serviceRecruitment);
	if(jsonReq.Flag == "true") {
		showTraicing($("#vacancySelected").val());
	}
	
	$( "#rsCandidates" ).dialog( "close" );
}

function ctrlComment(candidate) {
	//alert("ctrComment "+candidate);
	$("#candidateSelected").val(candidate);
	$( "#commentDialog" ).dialog( "open" );
}

function setComment() {
	var actualComment = $("#txtComentario").val();
	
	if(denayProcess) {
		var jsonReq = {
				process : "deny",
				comment : actualComment,
				idDemand: parseInt(demandToDeny)
		};
		
		var jsonResp = ajaxJSONtoPOST(Object.toJSON(jsonReq), serviceRecruitment);
		if(jsonResp.Flag=="true") {
			foundDemands(1);
		} else {
			alert("Error al rechazar al solicitud");
		}
		
	} else {
		var actualCandidate = $("#candidateSelected").val();
		jsonComm.push({comment : actualCandidate+"_"+actualComment});
		$("#txtComentario").val("");
	}
	$( "#commentDialog" ).dialog( "close" );
}

function screenManager(strComponent, strMenu) {
	var actualFrame = $("#rsOptionActive").val();
	var actualMenuOption = $("#rsMenuOption").val();
	
	if(actualFrame!=strComponent && actualFrame!="") {
		document.getElementById(actualFrame).style.visibility = "hidden";
	}
	document.getElementById(strComponent).style.visibility = "visible";
	rsSelecciona(document.getElementById(strMenu));
	$("#rsOptionActive").val(strComponent);
	$("#rsMenuOption").val(strMenu);
	rsDeselecciona(document.getElementById(actualMenuOption));
}

function acceptDemand(demand) {
	var jsonObject = {
			process 		: "accept",
			idDemand		: demand
		};
	/**/
	var jsonResp = ajaxJSONtoPOST(Object.toJSON(jsonObject), serviceRecruitment);
	if(jsonResp.Flag=="true") {
		$("#sts_"+demand).text("En Proceso");
		$("#img_"+demand).css("display", "inline");
		$("#btn_"+demand).css("display", "none");
	} else {
		alert("Error al aceptar la Solicitud");
	}
}

var denayProcess = false;
var demandToDeny = 0;
function denyDemand(demand) {
	//alert("deny demand");
	demandToDeny = demand;
	denayProcess = true;
	$("#commentDialog").dialog("open");
}

function findVacancyFromReport(demand) {
	$("#f1idSol").val(demand);
	if(reportVacancyBy()==false) {
		alert("No hay Vacantes para la Solicitud elegida");
		$("#f1idSol").val("");
	} else {
		screenManager("rsVacancy", "vacante");
		loadRSTabCSS(0);
	}
}

/********** Candidatos :) *****************/
function showHistoryCandidate(idCand) {
	alert(idCand);
}